<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>pg_index</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REV="MADE"
HREF="mailto:pgsql-docs@postgresql.org"><LINK
REL="HOME"
TITLE="PostgreSQL 9.1.2 Documentation"
HREF="index.html"><LINK
REL="UP"
TITLE="System Catalogs"
HREF="catalogs.html"><LINK
REL="PREVIOUS"
TITLE="pg_foreign_table"
HREF="catalog-pg-foreign-table.html"><LINK
REL="NEXT"
TITLE="pg_inherits"
HREF="catalog-pg-inherits.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="stylesheet.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html; charset=ISO-8859-1"><META
NAME="creation"
CONTENT="2011-12-01T22:07:59"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="5"
ALIGN="center"
VALIGN="bottom"
><A
HREF="index.html"
>PostgreSQL 9.1.2 Documentation</A
></TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
TITLE="pg_foreign_table"
HREF="catalog-pg-foreign-table.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
HREF="catalogs.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="60%"
ALIGN="center"
VALIGN="bottom"
>Chapter 45. System Catalogs</TD
><TD
WIDTH="20%"
ALIGN="right"
VALIGN="top"
><A
TITLE="pg_inherits"
HREF="catalog-pg-inherits.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CATALOG-PG-INDEX"
>45.25. <TT
CLASS="STRUCTNAME"
>pg_index</TT
></A
></H1
><P
>   The catalog <TT
CLASS="STRUCTNAME"
>pg_index</TT
> contains part of the information
   about indexes.  The rest is mostly in
   <TT
CLASS="STRUCTNAME"
>pg_class</TT
>.
  </P
><DIV
CLASS="TABLE"
><A
NAME="AEN86910"
></A
><P
><B
>Table 45-25. <TT
CLASS="STRUCTNAME"
>pg_index</TT
> Columns</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><COL><THEAD
><TR
><TH
>Name</TH
><TH
>Type</TH
><TH
>References</TH
><TH
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indexrelid</TT
></TD
><TD
><TT
CLASS="TYPE"
>oid</TT
></TD
><TD
><TT
CLASS="LITERAL"
><A
HREF="catalog-pg-class.html"
><TT
CLASS="STRUCTNAME"
>pg_class</TT
></A
>.oid</TT
></TD
><TD
>The OID of the <TT
CLASS="STRUCTNAME"
>pg_class</TT
> entry for this index</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indrelid</TT
></TD
><TD
><TT
CLASS="TYPE"
>oid</TT
></TD
><TD
><TT
CLASS="LITERAL"
><A
HREF="catalog-pg-class.html"
><TT
CLASS="STRUCTNAME"
>pg_class</TT
></A
>.oid</TT
></TD
><TD
>The OID of the <TT
CLASS="STRUCTNAME"
>pg_class</TT
> entry for the table this index is for</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indnatts</TT
></TD
><TD
><TT
CLASS="TYPE"
>int2</TT
></TD
><TD
>&nbsp;</TD
><TD
>The number of columns in the index (duplicates
      <TT
CLASS="LITERAL"
>pg_class.relnatts</TT
>)</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indisunique</TT
></TD
><TD
><TT
CLASS="TYPE"
>bool</TT
></TD
><TD
>&nbsp;</TD
><TD
>If true, this is a unique index</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indisprimary</TT
></TD
><TD
><TT
CLASS="TYPE"
>bool</TT
></TD
><TD
>&nbsp;</TD
><TD
>If true, this index represents the primary key of the table
      (<TT
CLASS="STRUCTFIELD"
>indisunique</TT
> should always be true when this is true)</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indisexclusion</TT
></TD
><TD
><TT
CLASS="TYPE"
>bool</TT
></TD
><TD
>&nbsp;</TD
><TD
>If true, this index supports an exclusion constraint</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indimmediate</TT
></TD
><TD
><TT
CLASS="TYPE"
>bool</TT
></TD
><TD
>&nbsp;</TD
><TD
>If true, the uniqueness check is enforced immediately on
       insertion
       (irrelevant if <TT
CLASS="STRUCTFIELD"
>indisunique</TT
> is not true)</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indisclustered</TT
></TD
><TD
><TT
CLASS="TYPE"
>bool</TT
></TD
><TD
>&nbsp;</TD
><TD
>If true, the table was last clustered on this index</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indisvalid</TT
></TD
><TD
><TT
CLASS="TYPE"
>bool</TT
></TD
><TD
>&nbsp;</TD
><TD
>       If true, the index is currently valid for queries.  False means the
       index is possibly incomplete: it must still be modified by
       <TT
CLASS="COMMAND"
>INSERT</TT
>/<TT
CLASS="COMMAND"
>UPDATE</TT
> operations, but it cannot safely
       be used for queries. If it is unique, the uniqueness property is not
       true either.
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indcheckxmin</TT
></TD
><TD
><TT
CLASS="TYPE"
>bool</TT
></TD
><TD
>&nbsp;</TD
><TD
>       If true, queries must not use the index until the <TT
CLASS="STRUCTFIELD"
>xmin</TT
>
       of this <TT
CLASS="STRUCTNAME"
>pg_index</TT
> row is below their <TT
CLASS="SYMBOL"
>TransactionXmin</TT
>
       event horizon, because the table may contain broken HOT chains with
       incompatible rows that they can see
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indisready</TT
></TD
><TD
><TT
CLASS="TYPE"
>bool</TT
></TD
><TD
>&nbsp;</TD
><TD
>       If true, the index is currently ready for inserts.  False means the
       index must be ignored by <TT
CLASS="COMMAND"
>INSERT</TT
>/<TT
CLASS="COMMAND"
>UPDATE</TT
>
       operations.
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indkey</TT
></TD
><TD
><TT
CLASS="TYPE"
>int2vector</TT
></TD
><TD
><TT
CLASS="LITERAL"
><A
HREF="catalog-pg-attribute.html"
><TT
CLASS="STRUCTNAME"
>pg_attribute</TT
></A
>.attnum</TT
></TD
><TD
>       This is an array of <TT
CLASS="STRUCTFIELD"
>indnatts</TT
> values that
       indicate which table columns this index indexes.  For example a value
       of <TT
CLASS="LITERAL"
>1 3</TT
> would mean that the first and the third table
       columns make up the index key.  A zero in this array indicates that the
       corresponding index attribute is an expression over the table columns,
       rather than a simple column reference.
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indcollation</TT
></TD
><TD
><TT
CLASS="TYPE"
>oidvector</TT
></TD
><TD
><TT
CLASS="LITERAL"
><A
HREF="catalog-pg-collation.html"
><TT
CLASS="STRUCTNAME"
>pg_collation</TT
></A
>.oid</TT
></TD
><TD
>       For each column in the index key, this contains the OID of the
       collation to use for the index.
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indclass</TT
></TD
><TD
><TT
CLASS="TYPE"
>oidvector</TT
></TD
><TD
><TT
CLASS="LITERAL"
><A
HREF="catalog-pg-opclass.html"
><TT
CLASS="STRUCTNAME"
>pg_opclass</TT
></A
>.oid</TT
></TD
><TD
>       For each column in the index key, this contains the OID of
       the operator class to use.  See
       <A
HREF="catalog-pg-opclass.html"
><TT
CLASS="STRUCTNAME"
>pg_opclass</TT
></A
> for details.
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indoption</TT
></TD
><TD
><TT
CLASS="TYPE"
>int2vector</TT
></TD
><TD
>&nbsp;</TD
><TD
>       This is an array of <TT
CLASS="STRUCTFIELD"
>indnatts</TT
> values that
       store per-column flag bits.  The meaning of the bits is defined by
       the index's access method.
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indexprs</TT
></TD
><TD
><TT
CLASS="TYPE"
>pg_node_tree</TT
></TD
><TD
>&nbsp;</TD
><TD
>       Expression trees (in <CODE
CLASS="FUNCTION"
>nodeToString()</CODE
>
       representation) for index attributes that are not simple column
       references.  This is a list with one element for each zero
       entry in <TT
CLASS="STRUCTFIELD"
>indkey</TT
>.  Null if all index attributes
       are simple references.
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>indpred</TT
></TD
><TD
><TT
CLASS="TYPE"
>pg_node_tree</TT
></TD
><TD
>&nbsp;</TD
><TD
>       Expression tree (in <CODE
CLASS="FUNCTION"
>nodeToString()</CODE
>
       representation) for partial index predicate.  Null if not a
       partial index.
      </TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="catalog-pg-foreign-table.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="catalog-pg-inherits.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><TT
CLASS="STRUCTNAME"
>pg_foreign_table</TT
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="catalogs.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><TT
CLASS="STRUCTNAME"
>pg_inherits</TT
></TD
></TR
></TABLE
></DIV
></BODY
></HTML
>